#include <REGX52.H>
#include "Delay.h"

unsigned char MatrixKey(){
	
	unsigned char KeyNumber = 0;
	int i;
	
	P1 = 0xFF;
	P1_3 = 0;
	
	if (P1_7 == 0) {
		Delay(20);
		while(P1_7 == 0);
		Delay(20);
		KeyNumber = 1;
	}
	
	if (P1_6 == 0) {
		Delay(20);
		while(P1_6 == 0);
		Delay(20);
		KeyNumber = 5;
	}
	
	if (P1_5 == 0) {
		Delay(20);
		while(P1_5 == 0);
		Delay(20);
		KeyNumber = 9;
	}
	
	if (P1_4 == 0) {
		Delay(20);
		while(P1_4 == 0);
		Delay(20);
		KeyNumber = 13;
	}
	
	P1 = 0xFF;
	P1_2 = 0;
	
	if (P1_7 == 0) {
		Delay(20);
		while(P1_7 == 0);
		Delay(20);
		KeyNumber = 2;
	}
	
	if (P1_6 == 0) {
		Delay(20);
		while(P1_6 == 0);
		Delay(20);
		KeyNumber = 6;
	}
	
	if (P1_5 == 0) {
		Delay(20);
		while(P1_5 == 0);
		Delay(20);
		KeyNumber = 10;
	}
	
	if (P1_4 == 0) {
		Delay(20);
		while(P1_4 == 0);
		Delay(20);
		KeyNumber = 14;
	}
	
	P1 = 0xFF;
	P1_1 = 0;
	
	if (P1_7 == 0) {
		Delay(20);
		while(P1_7 == 0);
		Delay(20);
		KeyNumber = 3;
	}
	
	if (P1_6 == 0) {
		Delay(20);
		while(P1_6 == 0);
		Delay(20);
		KeyNumber = 7;
	}
	
	if (P1_5 == 0) {
		Delay(20);
		while(P1_5 == 0);
		Delay(20);
		KeyNumber = 11;
	}
	
	if (P1_4 == 0) {
		Delay(20);
		while(P1_4 == 0);
		Delay(20);
		KeyNumber = 15;
	}
	
	P1 = 0xFF;
	P1_0 = 0;
	
	if (P1_7 == 0) {
		Delay(20);
		while(P1_7 == 0);
		Delay(20);
		KeyNumber = 4;
	}
	
	if (P1_6 == 0) {
		Delay(20);
		while(P1_6 == 0);
		Delay(20);
		KeyNumber = 8;
	}
	
	if (P1_5 == 0) {
		Delay(20);
		while(P1_5 == 0);
		Delay(20);
		KeyNumber = 12;
	}
	
	if (P1_4 == 0) {
		Delay(20);
		while(P1_4 == 0);
		Delay(20);
		KeyNumber = 16;
	}
	
	
	return KeyNumber;
}